package com.jwsoft.manager.core.dao.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jwsoft.manager.common.vo.bigScreen.analysisXq.StuEnrollInVO;
import com.jwsoft.manager.common.vo.bigScreen.analysisXq.StuEnrollXzjdpmVO;
import com.jwsoft.manager.common.vo.dataStatistics.enroll.*;
import com.jwsoft.manager.common.vo.eduStudentEnroll.EduStudentEnrollQueryVO;
import com.jwsoft.manager.common.vo.eduStudentEnroll.EduStudentEnrollVO;
import com.jwsoft.manager.core.dao.model.EduSocialSecurityDetail;
import com.jwsoft.manager.core.dao.model.EduStudentEnroll;
import com.jwsoft.manager.core.dao.model.EduhStudentEnroll;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* <p>
  *  Mapper 接口
  * </p>
*
* @author wangtao
* @since 2022-12-05
*/
@Mapper
public interface EduStudentEnrollMapper extends BaseMapper<EduStudentEnroll> {
    /**
     * 可同时报民办和公办
     * */
    List<EduStudentEnrollVO> getYwApplyList(EduStudentEnrollQueryVO vo);
    /**
     * 民办公办一起报名，一次只能报一所
     * */
    List<EduStudentEnrollVO> getYwApplyListYq(EduStudentEnrollQueryVO vo);
    //报名撤销查询
    List<EduStudentEnrollVO> getYwApplyListYqQuash(EduStudentEnrollQueryVO vo);
    List<StuEnrollXzjdpmVO> getStuEnrollXzjdpmVO(StuEnrollInVO vo);
    String queryMaxApplyId(@Param("applyId") String applyId, @Param("schoolId")String schoolId, @Param("year")Integer year);
    List<EduStudentEnrollVO> getEnrollLotteryList(EduStudentEnrollQueryVO vo);

    /**
     * 获取统筹区内报名过但未被录取的人员清单
     **/
    List<NoEnrollStudentVO> queryNoEnrollStudent(EnrollStudentQueryVO vo);

    List<NoEnrollStudentVO> queryNoEnrollStudentHistory(EnrollStudentQueryVO vo);

    /**
     * 查询没有在分班基础信息表中的报名数据
     *
     * @param year
     * @param schoolId
     * @param queryMaxSize
     * @param enrollStatus
     * @return
     */
    List<EduStudentEnroll> queryEnrollStudentNotInClassStudent(@Param("year") Integer year, @Param("schoolId") String schoolId, @Param("queryMaxSize") Integer queryMaxSize, @Param("enrollStatus") String enrollStatus);

    Integer selectCountByYear(@Param("year") Integer year);

    List<EduStudentEnroll> selectByYear(@Param("year") Integer year, @Param("pageSize") Integer pageSize);

    Integer deleteByTaskHistory(@Param("taskDetailId") String taskDetailId);

    Integer selectEncryptionCountByYear(@Param("year") Integer year, @Param("taskDetailId") String taskDetailId);

    List<EduhStudentEnroll> selectEncryptionByYear(@Param("year") Integer year, @Param("taskDetailId") String taskDetailId, @Param("pageSize") Integer pageSize);

    /**
     * 查询撤销次数
     */
    Long getBackCnt(@Param("year") Integer year, @Param("idcard") String idcard);

    List<EnrollStatisticsVO> enrollStatistics(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> enrollStatisticsMb(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> getauthNoList(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> enrollStatisticsImitate(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> getauthNoListImitate(EnrollStudentQueryVO vo);

    List<NoAssociatedAddressVO> noAssociatedAddress(EnrollStudentQueryVO vo);

    List<SameAddressSchoolVO> sameAddressSchool(EnrollStudentQueryVO vo);

    List<SameAddressSchoolDetailVO> sameAddressSchoolDetail(EnrollStudentQueryVO vo);

    List<SameAddressSchoolDetailVO> sameAddressSchoolDetailSchool(EnrollStudentQueryVO vo);

    List<ServerRelationNoSchoolRelataionVO> serverRelationButNoAssociatedAddress(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> allKindStatistic(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> allKindStatisticHistory(EnrollStudentQueryVO vo);

    List<AuthNoAllKindVO> getauthNoAllKindList(EnrollStudentQueryVO vo);

    List<AuthNoAllKindVO> getauthNoAllKindListHistory(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> allKindStatisticMb(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> allKindStatisticMbHistory(EnrollStudentQueryVO vo);

    List<AuthNoAllKindVO> getauthNoAllKindListMb(EnrollStudentQueryVO vo);

    List<AuthNoAllKindVO> getauthNoAllKindListMbHistory(EnrollStudentQueryVO vo);
}
